
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, 2012 and Azure
-- --------------------------------------------------
-- Date Created: 07/27/2014 14:20:57
-- Generated from EDMX file: C:\Users\Melqui\Documents\Visual Studio 2013\Projects\HopeBus\HopeBus\Model\ModeloDoSistema.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [HopeBus];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO

-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[FK_CidadeHorario]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[HorarioSet] DROP CONSTRAINT [FK_CidadeHorario];
GO
IF OBJECT_ID(N'[dbo].[FK_ClientePassagem]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[PassagemSet] DROP CONSTRAINT [FK_ClientePassagem];
GO
IF OBJECT_ID(N'[dbo].[FK_ViagemPassagem]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[PassagemSet] DROP CONSTRAINT [FK_ViagemPassagem];
GO
IF OBJECT_ID(N'[dbo].[FK_AgendamentoPassagem]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[PassagemSet] DROP CONSTRAINT [FK_AgendamentoPassagem];
GO
IF OBJECT_ID(N'[dbo].[FK_OnibusPassagem]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[PassagemSet] DROP CONSTRAINT [FK_OnibusPassagem];
GO
IF OBJECT_ID(N'[dbo].[FK_CidadeViagem]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[ViagemSet] DROP CONSTRAINT [FK_CidadeViagem];
GO
IF OBJECT_ID(N'[dbo].[FK_OnibusViagem]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[ViagemSet] DROP CONSTRAINT [FK_OnibusViagem];
GO

-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[PassagemSet]', 'U') IS NOT NULL
    DROP TABLE [dbo].[PassagemSet];
GO
IF OBJECT_ID(N'[dbo].[ClienteSet]', 'U') IS NOT NULL
    DROP TABLE [dbo].[ClienteSet];
GO
IF OBJECT_ID(N'[dbo].[CidadeSet]', 'U') IS NOT NULL
    DROP TABLE [dbo].[CidadeSet];
GO
IF OBJECT_ID(N'[dbo].[HorarioSet]', 'U') IS NOT NULL
    DROP TABLE [dbo].[HorarioSet];
GO
IF OBJECT_ID(N'[dbo].[ViagemSet]', 'U') IS NOT NULL
    DROP TABLE [dbo].[ViagemSet];
GO
IF OBJECT_ID(N'[dbo].[AgendamentoSet]', 'U') IS NOT NULL
    DROP TABLE [dbo].[AgendamentoSet];
GO
IF OBJECT_ID(N'[dbo].[OnibusSet]', 'U') IS NOT NULL
    DROP TABLE [dbo].[OnibusSet];
GO
IF OBJECT_ID(N'[dbo].[VendedorSet]', 'U') IS NOT NULL
    DROP TABLE [dbo].[VendedorSet];
GO

-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------

-- Creating table 'PassagemSet'
CREATE TABLE [dbo].[PassagemSet] (
    [IdPassagem] int IDENTITY(1,1) NOT NULL,
    [Valor] float  NOT NULL,
    [Data] datetime  NOT NULL,
    [Poltrona] nvarchar(max)  NOT NULL,
    [Horario] datetime  NOT NULL,
    [Cliente_IdCliente] int  NOT NULL,
    [Viagem_IdViagem] int  NOT NULL,
    [Agendamento_IdAgendamento] int  NOT NULL
);
GO

-- Creating table 'ClienteSet'
CREATE TABLE [dbo].[ClienteSet] (
    [IdCliente] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(max)  NOT NULL,
    [CPF] nvarchar(max)  NOT NULL,
    [RG] nvarchar(max)  NOT NULL,
    [Telefone] nvarchar(max)  NOT NULL,
    [Tipo] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'CidadeSet'
CREATE TABLE [dbo].[CidadeSet] (
    [IdCidade] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'HorarioSet'
CREATE TABLE [dbo].[HorarioSet] (
    [IdHorario] int IDENTITY(1,1) NOT NULL,
    [Hora] datetime  NOT NULL,
    [Viagem_IdViagem] int  NOT NULL
);
GO

-- Creating table 'ViagemSet'
CREATE TABLE [dbo].[ViagemSet] (
    [IdViagem] int IDENTITY(1,1) NOT NULL,
    [Origem] int  NOT NULL,
    [Destino] int  NOT NULL,
    [OnibusIdOnibus] int  NOT NULL,
    [Valor] float  NOT NULL
);
GO

-- Creating table 'AgendamentoSet'
CREATE TABLE [dbo].[AgendamentoSet] (
    [IdAgendamento] int IDENTITY(1,1) NOT NULL
);
GO

-- Creating table 'OnibusSet'
CREATE TABLE [dbo].[OnibusSet] (
    [IdOnibus] int IDENTITY(1,1) NOT NULL,
    [Registro] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'VendedorSet'
CREATE TABLE [dbo].[VendedorSet] (
    [IdVendedor] int IDENTITY(1,1) NOT NULL,
    [cep] nvarchar(max)  NOT NULL,
    [cpf] nvarchar(max)  NOT NULL,
    [endereco] nvarchar(max)  NOT NULL,
    [identidade] nvarchar(max)  NOT NULL,
    [nome] nvarchar(max)  NOT NULL,
    [login] nvarchar(max)  NOT NULL,
    [senha] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'ViagemCidade'
CREATE TABLE [dbo].[ViagemCidade] (
    [Viagem_IdViagem] int  NOT NULL,
    [Cidade_IdCidade] int  NOT NULL
);
GO

-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------

-- Creating primary key on [IdPassagem] in table 'PassagemSet'
ALTER TABLE [dbo].[PassagemSet]
ADD CONSTRAINT [PK_PassagemSet]
    PRIMARY KEY CLUSTERED ([IdPassagem] ASC);
GO

-- Creating primary key on [IdCliente] in table 'ClienteSet'
ALTER TABLE [dbo].[ClienteSet]
ADD CONSTRAINT [PK_ClienteSet]
    PRIMARY KEY CLUSTERED ([IdCliente] ASC);
GO

-- Creating primary key on [IdCidade] in table 'CidadeSet'
ALTER TABLE [dbo].[CidadeSet]
ADD CONSTRAINT [PK_CidadeSet]
    PRIMARY KEY CLUSTERED ([IdCidade] ASC);
GO

-- Creating primary key on [IdHorario] in table 'HorarioSet'
ALTER TABLE [dbo].[HorarioSet]
ADD CONSTRAINT [PK_HorarioSet]
    PRIMARY KEY CLUSTERED ([IdHorario] ASC);
GO

-- Creating primary key on [IdViagem] in table 'ViagemSet'
ALTER TABLE [dbo].[ViagemSet]
ADD CONSTRAINT [PK_ViagemSet]
    PRIMARY KEY CLUSTERED ([IdViagem] ASC);
GO

-- Creating primary key on [IdAgendamento] in table 'AgendamentoSet'
ALTER TABLE [dbo].[AgendamentoSet]
ADD CONSTRAINT [PK_AgendamentoSet]
    PRIMARY KEY CLUSTERED ([IdAgendamento] ASC);
GO

-- Creating primary key on [IdOnibus] in table 'OnibusSet'
ALTER TABLE [dbo].[OnibusSet]
ADD CONSTRAINT [PK_OnibusSet]
    PRIMARY KEY CLUSTERED ([IdOnibus] ASC);
GO

-- Creating primary key on [IdVendedor] in table 'VendedorSet'
ALTER TABLE [dbo].[VendedorSet]
ADD CONSTRAINT [PK_VendedorSet]
    PRIMARY KEY CLUSTERED ([IdVendedor] ASC);
GO

-- Creating primary key on [Viagem_IdViagem], [Cidade_IdCidade] in table 'ViagemCidade'
ALTER TABLE [dbo].[ViagemCidade]
ADD CONSTRAINT [PK_ViagemCidade]
    PRIMARY KEY CLUSTERED ([Viagem_IdViagem], [Cidade_IdCidade] ASC);
GO

-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------

-- Creating foreign key on [Cliente_IdCliente] in table 'PassagemSet'
ALTER TABLE [dbo].[PassagemSet]
ADD CONSTRAINT [FK_ClientePassagem]
    FOREIGN KEY ([Cliente_IdCliente])
    REFERENCES [dbo].[ClienteSet]
        ([IdCliente])
    ON DELETE CASCADE ON UPDATE NO ACTION;
GO

-- Creating non-clustered index for FOREIGN KEY 'FK_ClientePassagem'
CREATE INDEX [IX_FK_ClientePassagem]
ON [dbo].[PassagemSet]
    ([Cliente_IdCliente]);
GO

-- Creating foreign key on [Viagem_IdViagem] in table 'PassagemSet'
ALTER TABLE [dbo].[PassagemSet]
ADD CONSTRAINT [FK_ViagemPassagem]
    FOREIGN KEY ([Viagem_IdViagem])
    REFERENCES [dbo].[ViagemSet]
        ([IdViagem])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating non-clustered index for FOREIGN KEY 'FK_ViagemPassagem'
CREATE INDEX [IX_FK_ViagemPassagem]
ON [dbo].[PassagemSet]
    ([Viagem_IdViagem]);
GO

-- Creating foreign key on [Agendamento_IdAgendamento] in table 'PassagemSet'
ALTER TABLE [dbo].[PassagemSet]
ADD CONSTRAINT [FK_AgendamentoPassagem]
    FOREIGN KEY ([Agendamento_IdAgendamento])
    REFERENCES [dbo].[AgendamentoSet]
        ([IdAgendamento])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating non-clustered index for FOREIGN KEY 'FK_AgendamentoPassagem'
CREATE INDEX [IX_FK_AgendamentoPassagem]
ON [dbo].[PassagemSet]
    ([Agendamento_IdAgendamento]);
GO

-- Creating foreign key on [OnibusIdOnibus] in table 'ViagemSet'
ALTER TABLE [dbo].[ViagemSet]
ADD CONSTRAINT [FK_OnibusViagem]
    FOREIGN KEY ([OnibusIdOnibus])
    REFERENCES [dbo].[OnibusSet]
        ([IdOnibus])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating non-clustered index for FOREIGN KEY 'FK_OnibusViagem'
CREATE INDEX [IX_FK_OnibusViagem]
ON [dbo].[ViagemSet]
    ([OnibusIdOnibus]);
GO

-- Creating foreign key on [Viagem_IdViagem] in table 'HorarioSet'
ALTER TABLE [dbo].[HorarioSet]
ADD CONSTRAINT [FK_ViagemHorario]
    FOREIGN KEY ([Viagem_IdViagem])
    REFERENCES [dbo].[ViagemSet]
        ([IdViagem])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating non-clustered index for FOREIGN KEY 'FK_ViagemHorario'
CREATE INDEX [IX_FK_ViagemHorario]
ON [dbo].[HorarioSet]
    ([Viagem_IdViagem]);
GO

-- Creating foreign key on [Viagem_IdViagem] in table 'ViagemCidade'
ALTER TABLE [dbo].[ViagemCidade]
ADD CONSTRAINT [FK_ViagemCidade_Viagem]
    FOREIGN KEY ([Viagem_IdViagem])
    REFERENCES [dbo].[ViagemSet]
        ([IdViagem])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [Cidade_IdCidade] in table 'ViagemCidade'
ALTER TABLE [dbo].[ViagemCidade]
ADD CONSTRAINT [FK_ViagemCidade_Cidade]
    FOREIGN KEY ([Cidade_IdCidade])
    REFERENCES [dbo].[CidadeSet]
        ([IdCidade])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating non-clustered index for FOREIGN KEY 'FK_ViagemCidade_Cidade'
CREATE INDEX [IX_FK_ViagemCidade_Cidade]
ON [dbo].[ViagemCidade]
    ([Cidade_IdCidade]);
GO

-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------